using System;
using System.IO;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using ClickSocial.Framework;
using ClickSocial.Components;
using ClickSocial.Entities;

namespace ClickSocial
{
    public partial class Search : System.Web.UI.Page
    {      
        private int m_tipo;
        public int Tipo
        {
            get
            {
                if (!string.IsNullOrEmpty(Request["Tipo"]))
                {
                    m_tipo = Convert.ToInt32(Request["Tipo"]);
                }
                else
                {
                    m_tipo = Convert.ToInt32(ViewState["Tipo"]);    
                }
                
                return m_tipo;
            }
            set
            {
                ViewState["Tipo"] = value;                
            }
        }
        private string m_busqueda;
        public string Busqueda
        {
            get
            {
                if (!string.IsNullOrEmpty(Request["Busqueda"]))
                {
                    m_busqueda = Convert.ToString(Request["Busqueda"]);
                }
                else
                {
                    m_busqueda = Convert.ToString(ViewState["Busqueda"]);
                }
                return m_busqueda.ToLower();

            }
            set
            {
                ViewState["Busqueda"] = value;
            }
        }
        private string m_Desde;

        public string Desde
        {
            get
            {
                if (!string.IsNullOrEmpty(Request["Desde"]))
                {
                    m_Desde = Convert.ToString(Request["Desde"]);
                }
                else
                {
                    m_Desde = Convert.ToString(ViewState["Desde"]);
                }
                return m_Desde;

            }
            set
            {
                ViewState["Desde"] = value;
            }
        }
        private string m_Hasta;

        public string Hasta
        {
            get
            {
                if (!string.IsNullOrEmpty(Request["Hasta"]))
                {
                    m_Hasta = Convert.ToString(Request["Hasta"]);
                }
                else
                {
                    m_Hasta = Convert.ToString(ViewState["Hasta"]);
                }
                return m_Hasta;

            }
            set
            {
                ViewState["Hasta"] = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            
            Page.Title = "Click Social";
            lblmensaje.Text = string.Empty;

            
                if (PreviousPage != null && PreviousPage.IsCrossPagePostBack && PreviousPage.Master != null)
                {
                    Site master = (Site)PreviousPage.Master;

                    Master.TipoBusqueda = master.TipoBusqueda;
                    Master.TextoBusqueda = master.TextoBusqueda;
                    Master.FechaDesde = master.FechaDesde;
                    Master.FechaHasta = master.FechaHasta;
                }
                
                Tipo = Master.TipoBusqueda;
                Busqueda = Master.TextoBusqueda;
                Desde = Master.FechaDesde;
                Hasta = Master.FechaHasta;

                Binding();
            
        }
   
        protected void Buscar(object sender, CommandEventArgs e)
        {

        }

        protected void Binding()
        {
            if (Busqueda == string.Empty && (Tipo == 0 || Tipo == 1)) return;
            if (Desde == string.Empty && Tipo == 2) return;
            if(Hasta == string.Empty && Tipo==2) return;

            List<EventoInfo> eventos = new List<EventoInfo>();
            PagedDataSource Paginacion = new PagedDataSource();

            if (Tipo == 1)
                eventos = Evento.BusquedaPorFotografo(Busqueda);
            if (Tipo == 0)
                eventos = Evento.BusquedaPorNombreEvento(Busqueda);
            if (Tipo == 2 && Desde!=string.Empty && Hasta!=string.Empty)
                eventos = Evento.BusquedaPorFechaEvento(Convert.ToDateTime(Desde), Convert.ToDateTime(Hasta));
            if (Tipo == 3)
                eventos = Evento.BusquedaPorCiudad(Busqueda);

            if (eventos.Count > 0)
            {
                NameValueCollection querys = new NameValueCollection(Request.QueryString);
                if (string.IsNullOrEmpty(Request["Tipo"]))
                    querys.Add("Tipo", Tipo.ToString());
                if (string.IsNullOrEmpty(Request["Busqueda"]))
                    querys.Add("Busqueda", Busqueda);
                if (string.IsNullOrEmpty(Request["Desde"]))
                    querys.Add("Desde", Desde);
                if (string.IsNullOrEmpty(Request["Hasta"]))
                    querys.Add("Hasta", Hasta);

                Paginador paginador = new Paginador(Request["page"], Request.Path, querys);
                paginador.PageDS.DataSource = eventos;
                paginador.PageDS.AllowPaging = true;
                paginador.PageDS.PageSize = 9;
                litPaginador.Text = paginador.Render();

                dlBusqueda.DataSource = paginador.PageDS;
                dlBusqueda.DataBind();

            }
            else
            {
                ClearBinding();
            }


        }

        private void ClearBinding()
        {
            dlBusqueda.DataSource = null;
            dlBusqueda.DataBind();
            lblmensaje.Text = "No hay resultados";

        }
    }
}
